//package com.taobao.update;/*
// *
// *
// *                                  Apache License
// *                            Version 2.0, January 2004
// *                         http://www.apache.org/licenses/
// *
// *    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
// *
// *    1. Definitions.
// *
// *       "License" shall mean the terms and conditions for use, reproduction,
// *       and distribution as defined by Sections 1 through 9 of this document.
// *
// *       "Licensor" shall mean the copyright owner or entity authorized by
// *       the copyright owner that is granting the License.
// *
// *       "Legal Entity" shall mean the union of the acting entity and all
// *       other entities that control, are controlled by, or are under common
// *       control with that entity. For the purposes of this definition,
// *       "control" means (i) the power, direct or indirect, to cause the
// *       direction or management of such entity, whether by contract or
// *       otherwise, or (ii) ownership of fifty percent (50%) or more of the
// *       outstanding shares, or (iii) beneficial ownership of such entity.
// *
// *       "You" (or "Your") shall mean an individual or Legal Entity
// *       exercising permissions granted by this License.
// *
// *       "Source" form shall mean the preferred form for making modifications,
// *       including but not limited to software source code, documentation
// *       source, and configuration files.
// *
// *       "Object" form shall mean any form resulting from mechanical
// *       transformation or translation of a Source form, including but
// *       not limited to compiled object code, generated documentation,
// *       and conversions to other media types.
// *
// *       "Work" shall mean the work of authorship, whether in Source or
// *       Object form, made available under the License, as indicated by a
// *       copyright notice that is included in or attached to the work
// *       (an example is provided in the Appendix below).
// *
// *       "Derivative Works" shall mean any work, whether in Source or Object
// *       form, that is based on (or derived from) the Work and for which the
// *       editorial revisions, annotations, elaborations, or other modifications
// *       represent, as a whole, an original work of authorship. For the purposes
// *       of this License, Derivative Works shall not include works that remain
// *       separable from, or merely link (or bind by name) to the interfaces of,
// *       the Work and Derivative Works thereof.
// *
// *       "Contribution" shall mean any work of authorship, including
// *       the original version of the Work and any modifications or additions
// *       to that Work or Derivative Works thereof, that is intentionally
// *       submitted to Licensor for inclusion in the Work by the copyright owner
// *       or by an individual or Legal Entity authorized to submit on behalf of
// *       the copyright owner. For the purposes of this definition, "submitted"
// *       means any form of electronic, verbal, or written communication sent
// *       to the Licensor or its representatives, including but not limited to
// *       communication on electronic mailing lists, source code control systems,
// *       and issue tracking systems that are managed by, or on behalf of, the
// *       Licensor for the purpose of discussing and improving the Work, but
// *       excluding communication that is conspicuously marked or otherwise
// *       designated in writing by the copyright owner as "Not a Contribution."
// *
// *       "Contributor" shall mean Licensor and any individual or Legal Entity
// *       on behalf of whom a Contribution has been received by Licensor and
// *       subsequently incorporated within the Work.
// *
// *    2. Grant of Copyright License. Subject to the terms and conditions of
// *       this License, each Contributor hereby grants to You a perpetual,
// *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
// *       copyright license to reproduce, prepare Derivative Works of,
// *       publicly display, publicly perform, sublicense, and distribute the
// *       Work and such Derivative Works in Source or Object form.
// *
// *    3. Grant of Patent License. Subject to the terms and conditions of
// *       this License, each Contributor hereby grants to You a perpetual,
// *       worldwide, non-exclusive, no-charge, royalty-free, irrevocable
// *       (except as stated in this section) patent license to make, have made,
// *       use, offer to sell, sell, import, and otherwise transfer the Work,
// *       where such license applies only to those patent claims licensable
// *       by such Contributor that are necessarily infringed by their
// *       Contribution(s) alone or by combination of their Contribution(s)
// *       with the Work to which such Contribution(s) was submitted. If You
// *       institute patent litigation against any entity (including a
// *       cross-claim or counterclaim in a lawsuit) alleging that the Work
// *       or a Contribution incorporated within the Work constitutes direct
// *       or contributory patent infringement, then any patent licenses
// *       granted to You under this License for that Work shall terminate
// *       as of the date such litigation is filed.
// *
// *    4. Redistribution. You may reproduce and distribute copies of the
// *       Work or Derivative Works thereof in any medium, with or without
// *       modifications, and in Source or Object form, provided that You
// *       meet the following conditions:
// *
// *       (a) You must give any other recipients of the Work or
// *           Derivative Works a copy of this License; and
// *
// *       (b) You must cause any modified files to carry prominent notices
// *           stating that You changed the files; and
// *
// *       (c) You must retain, in the Source form of any Derivative Works
// *           that You distribute, all copyright, patent, trademark, and
// *           attribution notices from the Source form of the Work,
// *           excluding those notices that do not pertain to any part of
// *           the Derivative Works; and
// *
// *       (d) If the Work includes a "NOTICE" text file as part of its
// *           distribution, then any Derivative Works that You distribute must
// *           include a readable copy of the attribution notices contained
// *           within such NOTICE file, excluding those notices that do not
// *           pertain to any part of the Derivative Works, in at least one
// *           of the following places: within a NOTICE text file distributed
// *           as part of the Derivative Works; within the Source form or
// *           documentation, if provided along with the Derivative Works; or,
// *           within a display generated by the Derivative Works, if and
// *           wherever such third-party notices normally appear. The contents
// *           of the NOTICE file are for informational purposes only and
// *           do not modify the License. You may add Your own attribution
// *           notices within Derivative Works that You distribute, alongside
// *           or as an addendum to the NOTICE text from the Work, provided
// *           that such additional attribution notices cannot be construed
// *           as modifying the License.
// *
// *       You may add Your own copyright statement to Your modifications and
// *       may provide additional or different license terms and conditions
// *       for use, reproduction, or distribution of Your modifications, or
// *       for any such Derivative Works as a whole, provided Your use,
// *       reproduction, and distribution of the Work otherwise complies with
// *       the conditions stated in this License.
// *
// *    5. Submission of Contributions. Unless You explicitly state otherwise,
// *       any Contribution intentionally submitted for inclusion in the Work
// *       by You to the Licensor shall be under the terms and conditions of
// *       this License, without any additional terms or conditions.
// *       Notwithstanding the above, nothing herein shall supersede or modify
// *       the terms of any separate license agreement you may have executed
// *       with Licensor regarding such Contributions.
// *
// *    6. Trademarks. This License does not grant permission to use the trade
// *       names, trademarks, service marks, or product names of the Licensor,
// *       except as required for reasonable and customary use in describing the
// *       origin of the Work and reproducing the content of the NOTICE file.
// *
// *    7. Disclaimer of Warranty. Unless required by applicable law or
// *       agreed to in writing, Licensor provides the Work (and each
// *       Contributor provides its Contributions) on an "AS IS" BASIS,
// *       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
// *       implied, including, without limitation, any warranties or conditions
// *       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
// *       PARTICULAR PURPOSE. You are solely responsible for determining the
// *       appropriateness of using or redistributing the Work and assume any
// *       risks associated with Your exercise of permissions under this License.
// *
// *    8. Limitation of Liability. In no event and under no legal theory,
// *       whether in tort (including negligence), contract, or otherwise,
// *       unless required by applicable law (such as deliberate and grossly
// *       negligent acts) or agreed to in writing, shall any Contributor be
// *       liable to You for damages, including any direct, indirect, special,
// *       incidental, or consequential damages of any character arising as a
// *       result of this License or out of the use or inability to use the
// *       Work (including but not limited to damages for loss of goodwill,
// *       work stoppage, computer failure or malfunction, or any and all
// *       other commercial damages or losses), even if such Contributor
// *       has been advised of the possibility of such damages.
// *
// *    9. Accepting Warranty or Additional Liability. While redistributing
// *       the Work or Derivative Works thereof, You may choose to offer,
// *       and charge a fee for, acceptance of support, warranty, indemnity,
// *       or other liability obligations and/or rights consistent with this
// *       License. However, in accepting such obligations, You may act only
// *       on Your own behalf and on Your sole responsibility, not on behalf
// *       of any other Contributor, and only if You agree to indemnify,
// *       defend, and hold each Contributor harmless for any liability
// *       incurred by, or claims asserted against, such Contributor by reason
// *       of your accepting any such warranty or additional liability.
// *
// *    END OF TERMS AND CONDITIONS
// *
// *    APPENDIX: How to apply the Apache License to your work.
// *
// *       To apply the Apache License to your work, attach the following
// *       boilerplate notice, with the fields enclosed by brackets "[]"
// *       replaced with your own identifying information. (Don't include
// *       the brackets!)  The text should be enclosed in the appropriate
// *       comment syntax for the file format. We also recommend that a
// *       file or class name and description of purpose be included on the
// *       same "printed page" as the copyright notice for easier
// *       identification within third-party archives.
// *
// *    Copyright 2016 Alibaba Group
// *
// *    Licensed under the Apache License, Version 2.0 (the "License");
// *    you may not use this file except in compliance with the License.
// *    You may obtain a copy of the License at
// *
// *        http://www.apache.org/licenses/LICENSE-2.0
// *
// *    Unless required by applicable law or agreed to in writing, software
// *    distributed under the License is distributed on an "AS IS" BASIS,
// *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// *    See the License for the specific language governing permissions and
// *    limitations under the License.
// *
// *
// *//*
//
//
//package com.taobao.update;
//
//import android.content.Context;
//import android.os.Handler;
//import android.os.Looper;
//import android.text.TextUtils;
//import android.util.Log;
//import android.widget.Toast;
//
//import com.alibaba.fastjson.JSON;
//
//import com.taobao.atlas.dex.util.FileUtils;
//import com.taobao.atlas.update.AtlasUpdater;
//import com.taobao.atlas.update.model.UpdateInfo;
//
//import org.json.JSONArray;
//import org.json.JSONException;
//import org.json.JSONObject;
//
//import java.io.File;
//import java.util.ArrayList;
//import java.util.List;
//
//*/
//
//import android.content.Context;
//
//import java.io.File;
//
///**
// * Created by wuzhong on 2016/12/20.
// *//*
//
//*/
//public class Updater {
//
//    public static void update(Context context) {
//
//
////        try {
////            String versionName = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
////            File updateInfo = new File(context.getExternalCacheDir(), "update-" + versionName + ".json");
////
////            if (!updateInfo.exists()) {
////                Log.e("update", "更新信息不存在，请先 执行 buildTpatch.sh");
////                toast("更新信息不存在，请先 执行 buildTpatch.sh", context);
////                return;
////            }
////
////            String jsonStr = new String(FileUtils.readFile(updateInfo));
////            UpdateInfo info = JSON.parseObject(jsonStr, UpdateInfo.class);
////
////            File patchFile = new File(context.getExternalCacheDir(),
////                    "patch-" + info.updateVersion + "@" + info.baseVersion + ".tpatch");
////            AtlasUpdater.update(info, patchFile);
////            Log.e("update", "update success");
////            toast("更新成功，请重启app", context);
////        } catch (Throwable e) {
////            e.printStackTrace();
////            toast("更新失败, " + e.getMessage(), context);
////        }
//    }
//
//
//
//    private static UpdateInfo parseDexPatchJson(JSONObject data) throws JSONException {
//        if (null == data) {
//            return null;
//        }
//        JSONObject updateJson = data.getJSONArray("patches").getJSONObject(0);
//        JSONArray bundles = updateJson.getJSONArray("bundles");
//        if (null == bundles || bundles.length() < 1) {
//            return null;
//        }
//        UpdateInfo updateInfo = new UpdateInfo();
//        updateInfo.dexPatch = updateJson.optBoolean("dexPatch", true);
//        updateInfo.baseVersion = data.getString("baseVersion");
//        updateInfo.updateBundles = new ArrayList<>(bundles.length());
//        for (int i = 0; i < bundles.length(); i++) {
//            JSONObject object = bundles.getJSONObject(i);
//            JSONArray dependencies = object.getJSONArray("dependency");
//            List<String> dep = new ArrayList<>();
//            if (dependencies != null && dependencies.length() > 0) {
//                for (int j = 0; j < dependencies.length(); j++) {
//                    dep.add((String)dependencies.get(j));
//                }
//            }
//            UpdateInfo.Item item = new UpdateInfo.Item();
//            item.dependency = dep;
//            item.dexpatchVersion = object.getLong("dexpatchVersion");
//            item.isMainDex = object.getBoolean("isMainDex");
//            item.reset = object.optBoolean("reset", false);
//            item.name = object.getString("name");
//            item.unitTag = object.getString("unitTag");
//            item.srcUnitTag = object.getString("srcUnitTag");
//            updateInfo.updateBundles.add(item);
//        }
//        return updateInfo;
//    }
//}
//
